Portable computing devices, such as smartphones or tablet computers, have become increasingly powerful and user-friendly. Increased network connectivity has further allowed portable computing devices to provide a wider range of functionalities and/or data. This functionality and connectivity has increased the number of portable computing devices being used.
Components of portable computing devices are periodically updated to include advancements or additions to a component. For example, an operating system executed by a portable computing device and/or applications executed by a portable computing device may be periodically updated to provide added functionality or to modify operation. Typically, a portable computing device receives update data from a source, such as a server, and executes the update data to update a component. For example, data describing an updated operating system or application is received by a portable computing device, which executes the data to update the operating system or the application.
Prior to increases in portable computing device use, when an update was available, a server transmitted an invitation to upgrade to the portable computing device. Subsequently, a portable computing device user responded to the invitation when convenient for the user and the portable computing device received update data responsive to the server receiving the response to the invitation. Because update data was transmitted after a response is received, this configuration reduced the likelihood of a sudden load on the servers or on the network. However, transmitting invitations to upgrade to multiple portable computing devices required manual issuance of batches of invitations, making this technique difficult to scale.
Hence, the increased number of portable computing devices and the increasing size of the update data to transmit have resulted in upgrade data being distributed through a push-based model. In the push-based model, servers transmit invitations to groups of portable computing devices, which automatically respond to the invitation upon receipt to retrieve upgrade data. This causes large spikes in network bandwidth use when upgrade data is transmitted to portable computing devices followed by periods of low bandwidth consumption until an additional group of portable computing devices receive update data.
The spikes in network bandwidth consumption caused by the push-based model may also result in increased costs. Many network carriers impose additional charges if bandwidth consumption exceeds a threshold value, and the spikes in network bandwidth consumption from the conventional push-based upgrade model often exceed the threshold bandwidth consumption value.
Skilled artisans will appreciate that elements in the Figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the Figures may be exaggerated relative to other elements to help to improve understanding of embodiments of the present invention.
The apparatus and method components have been represented where appropriate by conventional symbols in the drawings, showing the specific details that are pertinent to understanding the embodiments of the present invention so as not to obscure the disclosure with details that will be readily apparent to those of ordinary skill in the art having the benefit of the description herein.